[Python] 关于自动检测并调整Win系统DPI缩放的方案实现

您所在的位置:网站首页 win7 屏幕缩小 [Python] 关于自动检测并调整Win系统DPI缩放的方案实现

[Python] 关于自动检测并调整Win系统DPI缩放的方案实现

#[Python] 关于自动检测并调整Win系统DPI缩放的方案实现| 来源: 网络整理| 查看: 265

最近在玩 win的自动化操作,win10的系统缩放可是把我坑的不轻,具体体现在于:使用某某插件截屏保存,识图,识字 记录坐标时,就比如截屏上传给阿里云ocr识字,系统的dpi缩放超过100%的时候是无法截到全屏的,还识别什么字呢?比较极端的是现在高分屏的商务本,13寸的2K屏,4K屏,缩放开到200%以上,只能截取到屏幕的1/4不到,更不用说,开了缩放之后导致界面拉伸,识图 识字功能全部GG,针对每个的缩放比例都做一套方案?那也太麻烦了。如何才能让不同用户的电脑都可以正常运行呢?解决方案从两方面:一方面是改进截屏的插件,另一方面是让用户自己改回正常的缩放。改插件,我是没有那个能力,改进不了,所以从用户端着手。怎么自动改?

1.改注册表

这是某易语言论坛版主给我的解决方案,但是,修改了注册表,意味着需要注销电脑,是一个实现方式.但是放在脚本上就显得太麻烦了,有这个功夫,不如自己手动右键 去改,当场就能生效,注销会使电脑运行的程序全都关掉。这就违背自动操作的初衷了。

2.win32api 先检测 再修改先上完整的代码

具体的流程是先检测当前电脑系统的缩放DPI值,如果是100% 则不做调整如果不是100%,就会自动调整到100%,工作完成后,将DPI自动恢复为电脑之前的缩放设定,实现快速全自动

前三个函数是用来判断当前电脑的DPI值的,具体我也不想说了,就是用win32api的接口去获取的。我这里只是分享一个别人的解决方案,他做成了一个exe,所以使用非常简单,运行它 加个参数就行了。

原理是调用了SystemParametersInfo() 

这个函数还可以加速鼠标 设置监视器 光滑图标 等

但是我并没有在python中调用出来,加载了user32.dll,只是说没这个函数如果有大神愿意专研,可以进链接里看看是怎么实现的只是个分享贴了,国内没有,我搜了半天,用着蹩脚的英语和 才找到这个解决方案

原作者github 

https://github.com/imniko/SetDPI编程方式修改window 的dpi缩放 C#示例 https://stackoverflow.com/questions/35233182/how-can-i-change-windows-10-display-scaling-programmatically-using-c-sharp/62916586#62916586MSDN 解释此函数 https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa?redirectedfrom=MSDN



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3